package com.xiaoxu.intranetweb.mybatisplusSzappdb.service.impl;

import cn.dev33.satoken.stp.StpUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.xiaoxu.intranetweb.config.SzConfig;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.entity.SysFiles;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.entity.TCpyFiles;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.mapper.SysFilesMapper;
import com.xiaoxu.intranetweb.mybatisplusSzappdb.service.ISysFilesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaoxu.intranetweb.util.FileUploadUtils;
import com.xiaoxu.intranetweb.util.SzResult;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.time.LocalDateTime;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author xiaoxu
 * @since 2022-12-27
 */
@Service
@DS("szappdb")
public class SysFilesServiceImpl extends ServiceImpl<SysFilesMapper, SysFiles> implements ISysFilesService {

    @Override
    public SzResult upload(MultipartFile file, String connId, String token) throws IOException {
        //存储文件返回绝对路径
        String filePath = FileUploadUtils.upload(SzConfig.getUploadPath(),file);
        //获取文件名
        String fileName = file.getOriginalFilename();
        //获取文件后缀
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        SysFiles sysFiles = new SysFiles();
        sysFiles.setConnId(connId);
        sysFiles.setUploadFrom(StpUtil.getLoginIdByToken(token).toString());
        sysFiles.setFileName(fileName);
        sysFiles.setFilePath(filePath);
        sysFiles.setFileSize(String.valueOf(file.getSize()));
        sysFiles.setFileType(suffix.replace(".", ""));
        sysFiles.setUploadTime(LocalDateTime.now());
        save(sysFiles);
        return SzResult.success(sysFiles);
    }
}
